//
// Description: 902. 最短编辑距离
// Created by Loading on 2022/6/3.
//

#include <bits/stdc++.h>

using namespace std;

constexpr int N = 1010;

char a[N], b[N];
// dp[i][j] 表示 a 的前 i 个字符变成 b 的前 j 个字符所需要的最少操作次数
int dp[N][N];

int main() {
    int n, m;
    cin >> n >> (a + 1);
    cin >> m >> (b + 1);

    // 初始化 dp 数组
    for (int i = 1; i <= n; ++i) {
        dp[i][0] = i;
    }
    for (int i = 1; i <= m; ++i) {
        dp[0][i] = i;
    }

    // 状态转移
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + 1;
            // 如果 a[i] == b[j]，则无需操作
            dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + (int) (a[i] != b[j]));
        }
    }

    cout << dp[n][m] << endl;

    return 0;
}